﻿#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>
//2024.01.11比特假期作业代码题——day10
int func(int x) {
	int count = 0;
	while (x) {
		count++;
		x = x & (x - 1);
	}
	return count;
}

void test_1() {
	int x = 0;
	scanf("%d", &x);
	int ret = func(x);
	printf("%d\n", ret);
}
void test_2() {
	int count = 0;
	int x = -1;
	while (x) {
		count++;
		x >>= 1;
	}
	printf("%d\n", count);
}
void test_3() {
	int a = 1, b = 2, m = 0, n = 0, k;
	k = (n = b < a) && (m = a);
	printf("%d,%d\n", k, m);
}
//不用加减乘除做加法——基础数学——简单
//描述
//写一个函数，求两个整数之和，要求在函数体内不得使用 + 、 - 、 * 、 / 四则运算符号。
//数据范围：两个数都满足：−10≤n≤1000
//进阶：空间复杂度：O(1)，时间复杂度：O(1)
//示例1
//输入：
//1, 2
//返回值：
//3
//示例2
//输入：
//0, 0
//返回值：
//0
int Add(int num1, int num2) {
	// write code here
	int sum1 = num1;//非进位信息
	int sum2 = num2;//进位信息
	while (sum2) {
		int tmp = sum1 ^ sum2;//异或<==>非进位求和
		sum2 = (sum1 & sum2) << 1;//与-->进位信息，往左进一位
		sum1 = tmp;//非进位信息
	}
	return sum1;
}
void test_4() {
	int x = 0, y = 0;
	while (scanf("%d%d", &x, &y) == 2) {
		printf("%d\n", Add(x, y));
	}
}
//找到所有数组中消失的数字——数组、哈希表——简单
//给你一个含 n 个整数的数组 nums ，其中 nums[i] 在区间[1, n] 内。请你找出所有在[1, n] 范围内但没有出现在 nums 中的数字，并以数组的形式返回结果。
//示例 1：
//输入：nums = [4, 3, 2, 7, 8, 2, 3, 1]
//输出：[5, 6]
//示例 2：
//输入：nums = [1, 1]
//输出：[2]
//提示：
//n == nums.length
//1 <= n <= 105
//1 <= nums[i] <= n
//进阶：你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗 ? 你可以假定返回的数组不算在额外空间内。
int cmp_int(const void* p1, const void* p2) {
	return *(int*)p1 - *(int*)p2;
}
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) {
	qsort(nums, numsSize, sizeof(int), cmp_int);
	*returnSize = 0;
	int* ans = (int*)calloc(numsSize + 1, sizeof(int));
	if (!ans)
		return NULL;
	for (int i = 0; i < numsSize; i++) {
		ans[nums[i]]++;
	}
	int j = 0;
	for (int i = 1; i < numsSize + 1; i++) {
		if (ans[i] == 0) {
			ans[j++] = i;
		}
	}
	*returnSize = j;
	return ans;
}
void test_5() {
	int n = 0;
	while (scanf("%d", &n) == 1) {
		int* p = (int*)calloc(n, sizeof(int));
		assert(p);
		for (int i = 0; i < n; i++)
			scanf("%d", &p[i]);
		int m = 0;
		int* s = findDisappearedNumbers(p, n, &m);
		for (int i = 0; i < m; i++) {
			printf("%d ", s[i]);
		}
		printf("\n");
		free(p);
		free(s);
	}
}

int main() {
	test_5();
	return 0;
}